/*
 * Pressure.h
 * This file is part of WX
 *
 * Copyright 2010-2013 Jason Coulls. All Rights Reserved.
 *
 * is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, version 2 of the License.
 *
 * is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with . If not, see <http://www.gnu.org/licenses>.
 */

#import <Foundation/Foundation.h>

/**
 This class represents an air pressure reading.
 */
@interface Pressure : NSObject

/**
 An enumeration of pressure scales
 */
typedef enum {
    kPRESSUREPASCALS,           /**< this pressure reading is in Pascals (Pa) */
    kPRESSUREKILOPASCALS,       /**< this pressure reading is in Kilopascals (Kp) */
    kPRESSUREMILLIBARS,         /**< this pressure reading is in Millibars (Mb) */
    kPRESSUREHECTOPASCALS,      /**< this pressure reading is in HectoPascals (Hp) */
    kPRESSUREINCHESOFMERCURY,   /**< this pressure reading is in Inches of Mercury (InHg) */
} PressureScale;


/**
 The pressure reading.
 */
@property   double      reading;

/**
 The pressure tendency for the past three hours.
 */
@property   double      tendency;

/**
 The scale this reading is represented in.
 */
@property (nonatomic)           PressureScale       pressureScale;

/**
 Converts the current reading to its value in Pascals (Pa).
 @returns returns the pressure in Pascals.
 */
-(double) pressureInPascals;

/**
 Converts the current reading to its value in Kilopascals (kPa).
 @returns returns the pressure in Kilopascals.
 */
-(double) pressureInKilopascals;

/**
 Converts the current reading to its value in Millibars (Mb).
 @returns returns the pressure in Millibars.
 */
-(double) pressureInMillibars;

/**
 Converts the current reading to its value in Hectopascals.
 @returns returns the pressure in hPa.
 */
-(double) pressureInHectopascals;

/**
 Converts the current reading to its value in Inches of Mercury.
 @returns returns the pressure in InHg.
 */
-(double) pressureInInchesOfMercury;



@end
